perm filename PAPER.GOL[P,JRA] blob sn#161039 filedate 1975-05-28 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	What this research will show.
C00006 ENDMK
CāŠ—;
What this research will show.

1. The power of algorithms as a tool for teaching mathematics.
Compare the usual scheme of using functions as the basis of discussion.
In many circumstances it is unnecessarily abstract. The process of evaluation
or substitution and simplification are intuitively easier to establish.
Indeed since they are mechanizable, we could build a "desk calculator"
for use in classes like finite math. This way those without the
necessary sophistication could  still perform; and armed with this
confidence could begin to see the distinction between function and
algorithm. Such a system would support symbolic computations, showing the
structure of the computation. The student would be able to apply 
substitutions and simplifications using keyboard commands on a display
device. The language for describing such algorithms  
should be sufficiently natural and powerful so as to support
description of recussive and iterative definitions, but not so
presumptous as to become a full programming language.
SJU finite math.

Typical programming languages are unsatisfactory for several reasons.
Not oriented to  tracing evalaution or allowing stepwise execution
by the user.  They are also unsatisfactory because of a extraordinary
dependence on syntax. The mechanisms necessary to describe algorithms are
significantly less complex than one would imagine from reading a programming
manual or text.
Indeed the first hurdle to overcome when teaching about abstract data structures
is to stop people from traditional ways of thinking about programming.

2.  The interactive system. It should be an exceptionally useable tool
intially for introductory courses (lower division) in studying
algorithms. It is a necessity to get out of the traditional ways of 
presenting programming ans a way to instruct our machines. Rather, we
must begin thinking  of machines as devices to execute our algorithms.

3. c.s. research. There are some very good solid problems on how to relate
formalisms for language to program constructions.

4. Perhaps most important is the attempt to reverse thw way we think about programmiing.
This is related to the study of abstract data structures and algorithms.
This philosophy is developed in my book  on a.d.s.

I have worked on many parts of such a system and have  thought a great deal
about the problems of programming and c.s. languages.